/*
    2D FDTD simulator
    Copyright (C) 2019 Emilia Blåsten

    This program is free software: you can redistribute it and/or
    modify it under the terms of the GNU Affero General Public License
    as published by the Free Software Foundation, either version 3 of
    the License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public
    License along with this program.  If not, see
    <http://www.gnu.org/licenses/>.
*/
/* material.h: The header file for declaring the functions that are used
 * to define the ez, hx and hy field update coefficients. Also a
 * function to initialize the parameters used by the other functions. */

#ifndef _MATERIAL_H
#define _MATERIAL_H

// Coefficients used when updating the ez-field
double ezCe(int mm, int nn, int choice);
double ezCh(int mm, int nn, int choice);

// Coefficients used when updating the hx-field
double hxCe(int mm, int nn, int choice);
double hxCh(int mm, int nn, int choice);

// Coefficients used when updating the hy-field
double hyCe(int mm, int nn, int choice);
double hyCh(int mm, int nn, int choice);

void materialInit(int sizeX, int sizeY, double cdtds, double imp0);

#endif
